1. Field of the Invention
This invention relates to computer systems, and more particularly, to an apparatus and a method for testing to determine that data stored in non-volatile memory has been correctly written to volatile memory such as static random access memory (SRAM) when power is applied to a computer system.
2. History of the Prior Art
There are situations in which it is desirable to transfer data stored in a non-volatile memory such as an electrically-programmable read only memory (EPROM) to volatile memory. For example, when power is initially applied to a computer system, the basic input/output startup (BIOS) program of Intel based computers typically stored in non-volatile memory may be transferred to main memory so that its operations become available more rapidly to the central processing unit. In another case, a programmable logic circuit may be used to control the association of various peripheral devices with the system bus of a computer system. Such a programmable logic circuit may include an array of volatile memory cells which are written to provide the various logic functions desired to be performed. Volatile memory cells may be initialized with data stored in non-volatile memory when power is first applied to a computer system.
In some arrangements in which data stored in a non-volatile memory is transferred to volatile memory, the volatile memory is a static random access memory (SRAM) array. It is often necessary with a SRAM array to make sure that the data intended to be loaded in the SRAM array has actually been loaded to the array so that that data may be used with assurance. The problem is especially acute because SRAM arrays are often loaded during the period in which a computer is first being turned on. At this time, the chance for error in loading is much greater because the operating conditions have often not yet stabilized and great demands are being placed on its power supply.
It is therefore desirable to provide circuitry for accurately testing the data values which have been written to a SRAM array from a non-volatile memory array in order to assure that the data has been written accurately.